パスワードをハッシュ化させて保存する
class CreateUsers < ActiveRecord::Migration[7.1] def change create_table :users do |t| t.string :username t.string :password_digest t.timestamps end end end
class User < ApplicationRecord has_secure_password end
パスワードはそのままデータベースに保存すると漏洩したときなどのリスクがあるためハッシュ化を行って保存します。
ハッシュ化とは復号がほぼ不可能な暗号化のことです。
パスワードを保存するフィールド名は
にしてください。
password_digestはハッシュ化、認証に使用する特殊なフィールドとなっています。
password_digestフィールドがある状態でモデルを定義しているファイル内に
と入力することで、保存時にpasswordフィールドとして渡された値がハッシュ化されてpassword_digestフィールドに保存されます。
上の例ではUserモデルにusernameとpassword_digestフィールドを定義しています。
上の例にユーザーを追加するときは
のような形式で記入してください。
ハッシュ化とは復号がほぼ不可能な暗号化のことです。
パスワードを保存するフィールド名は
password_digest
にしてください。
password_digestはハッシュ化、認証に使用する特殊なフィールドとなっています。
password_digestフィールドがある状態でモデルを定義しているファイル内に
has_secure_password
と入力することで、保存時にpasswordフィールドとして渡された値がハッシュ化されてpassword_digestフィールドに保存されます。
上の例ではUserモデルにusernameとpassword_digestフィールドを定義しています。
上の例にユーザーを追加するときは
user = User.new(username: "ユーザー名", password: "パスワード")
user.save
user.save
のような形式で記入してください。